package javaweb;

import org.junit.Test;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * URL:是统一资源定位符，对应着互联网的某一资源地址
 * 格式：http://localhost:8088/examples/beauty.jpg?username=Tom
 *      协议      主机名  端口号   资源地址             参数列表
 * #片段名：锚点,定位
 * 参数列表：参数名=参数值&参数名=参数值...
 */
public class url {
    //下载服务器端的图片
    @Test
    public void url(){
        InputStream is = null;
        HttpURLConnection openConnection = null;
        try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("user.txt"))){
            URL url = new URL("http://localhost:8088/examples/beauty.jpg?username=Tom");
            //1.获取url的文件名
            url.getFile();///examples/beauty.jpg?username=Tom
            //2.获取url的协议名
            url.getProtocol();//http
            //3.获取url的端口号
            url.getPort();//8088
            //4.获取url的文件路径
            url.getPath();//examples/beauty.jpg
            //5.获取url的主机名
            url.getHost();//localhost
            //6.获取url的查询名
            url.getQuery();//username=Tom
            //建立URL连接
            openConnection = (HttpURLConnection)url.openConnection();
            openConnection.connect();
            //获取输入流
            is = openConnection.getInputStream();
            int len;
            byte[] bytes=new byte[1024];
            while ((len=is.read(bytes))!=-1){
                bos.write(bytes,0,len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            //URL断开连接
            openConnection.disconnect();
        }

    }
}
